package tree;

/**
 * @Author leecho
 * @Date: 2021/10/26 9:32
 * @Version 1.0
 */

public class ArrBinaryTreeDemo {
    public static void main(String[] args) {
        int[] arr ={1,2,3,4,5,6,7};
        new ArrBinaryTree(arr).perList(0);
    }
}

/*
* 规定
* - 父节点的左子节点为 2*n + 1
* - 父节点的右子节点为 2*n + 2
* - 第n个子节点的父节点为 （n-1) / 2
* */
class ArrBinaryTree{
    private int[] arr;

    public ArrBinaryTree(int[] arr) {
        this.arr = arr;
    }

    public void perList(int index){
        if (arr == null || arr.length == 0){
            System.out.println("数组为空，停止遍历");
        }
        System.out.println(arr[index]);
        if ((index * 2 + 1) < arr.length)
            perList(index * 2 + 1);
        if ((index * 2 + 2) < arr.length)
            perList(index * 2 + 2);
    }
}
